<?php

		//@更新物品圖片資料進資料表`images`。
		//@這裡的物品圖片資料分為三種情況：1.全新上傳的圖片。2.僅修改圖片資料的圖片。3.被刪除的圖片。
		$DBTable_images = new Zend_Db_Table('images');
		$ary_imgInfos = Zend_Json::decode($input['imgInfoJSON']);
		
		//@藉由物品ID從資料庫裡撈出所屬的物品圖片ID。
		$ary_tmp = $DBTable_images	
			->select()
			->from('images', array('image_id'))
			->where('item_id =' . $iId)
			->query()
			->fetchAll();
		//@整理物品圖片ID陣列為一維陣列或空陣列。	
		if(FALSE === empty($ary_tmp))
		{
			foreach($ary_tmp as $eachEl)
			{
				$ary_imgIdsFromDB[] = $eachEl['image_id'];
			}
		}
		elseif(TRUE === empty($ary_tmp))
		{
			$ary_imgIdsFromDB = array();
		}
		//@比對外部傳入的圖片ID和原本屬於該物品的圖片ID(從資料庫裡撈出，作為對照清單)，來判斷圖片的更新情況。
		foreach($ary_imgInfos as $eachImgInfo)
		{
			switch(TRUE)
			{
				//@1.全新上傳的圖片。
				case 0 === $eachImgInfo['imgId']:
					$addData = array(
						'item_id' => $iId,
						'image_name' => $eachImgInfo['imgName'],
						'image_description_ks' => $eachImgInfo['imgDesc'],
						'image_thumb_name' => $eachImgInfo['thumbName'],
						'uploaded' => $eachImgInfo['uplDT']
					);
					$DBTable_images->insert($addData);
					break;
					
				case 0 !== $eachImgInfo['imgId']:
					switch(TRUE)
					{
						//@2.僅修改圖片資料的圖片。
						case FALSE === empty($ary_imgIdsFromDB):
							$updData = array(
								'image_description_ks' => $eachImgInfo['imgDesc']
							);
							$DBTable_images->update($updData, 'image_id =' . $eachImgInfo['imgId']);
							//將更新完成的圖片ID從對照清單(從資料庫裡撈出，原本屬於該物品的圖片ID)裡移除。
							$ary_imgIdsFromDB = array_diff($ary_imgIdsFromDB, array($eachImgInfo['imgId']));
							break;

						//@3.被刪除的圖片。
						case TRUE === empty($ary_imgIdsFromDB):
							$DBTable_images->delete('image_id =' . $eachImgInfo['imgId']);
							break;
					}
					break;
			}
		}
		//@如果逐一檢查完從外部傳入之圖片的更新情況後，對照清單裡還有未被移除的圖片ID，
		//@就根據此清單內容，將資料庫裡對應的圖片紀錄刪除掉。
		if(FALSE === empty($ary_imgIdsFromDB))
		{
			$imgIdsCSV = implode(',', $ary_imgIdsFromDB);
			$DBTable_images->delete('image_id IN (' . $imgIdsCSV . ')');
		}